/*
Copyright (C) 2022-2024 Inspur Corp. All Rights Reserved.

SPDX-License-Identifier: Apache-2.0
*/
package param

type PublicKey struct {
	Id           string `json:"id"`
	Type         string `json:"type"`
	PublicKeyHex string `json:"publicKeyHex"`
}

type Service struct {
	Id              string `json:"id"`
	Type            string `json:"type"`
	ServiceEndpoint string `json:"serviceEndpoint"`
}

type Proof struct {
	Type           string `json:"type"`
	Creator        string `json:"creator"`
	SignatureValue string `json:"signatureValue"`
}

type Document struct {
	Context        string      `json:"@context"`
	Id             string      `json:"id"`
	Version        string      `json:"version"`
	Created        string      `json:"created"`
	Updated        string      `json:"updated"`
	PublicKey      []PublicKey `json:"publicKey"`
	Authentication []string    `json:"authentication"`
	Recovery       []string    `json:"recovery"`
	Service        []Service   `json:"service"`
	Proof          Proof       `json:"proof"`
	Status         string      `json:"status"`
}

type DocumentParam struct {
	Did       string   `json:"did"`
	Document  Document `json:"document,omitempty"`
	Operation string   `json:"operation"`
	Timestamp string   `json:"timestamp"`
	Signature string   `json:"signature"`
}
